#pragma once

enum class SimHashes {
    AluminumGas = 100766521,
    CarbonDioxide = 1960575215,
    CarbonGas = -314016756,
    ChlorineGas = -1324664829,
    ContaminatedOxygen = 721531317,
    CopperGas = 1966552544,
    GoldGas = -805366663,
    Helium = -1554872654,
    Hydrogen = -1046145888,
    IronGas = 1541626289,
    CobaltGas = -1429687642,
    LeadGas = 905042813,
    MercuryGas = -839856666,
    Methane = -841236436,
    NiobiumGas = -1616033402,
    Fallout = 1000463219,
    Oxygen = -1528777920,
    PhosphorusGas = 1887387588,
    Propane = -1858722091,
    RockGas = -432557516,
    SaltGas = -1946026749,
    SourGas = -927923200,
    Steam = -899515856,
    SteelGas = -1406916018,
    SulfurGas = -2120504832,
    SuperCoolantGas = -3376362,
    TungstenGas = 431998133,
    EthanolGas = -756961258,
    Syngas = 1102028305,
    NickelGas = 1320373807,
    IridiumGas = 1859051228,
    Brine = -324547888,
    Chlorine = -878033482,
    CrudeOil = -1412059381,
    DirtyWater = 1832607973,
    LiquidCarbonDioxide = -1526513293,
    LiquidGunk = -714505017,
    LiquidHelium = -1934139602,
    LiquidHydrogen = -751997156,
    LiquidMethane = 371787440,
    LiquidOxygen = -1908044868,
    LiquidPhosphorus = 1323821489,
    LiquidPropane = -645698215,
    LiquidSulfur = -1108652427,
    Milk = 59201595,
    Magma = -1075911705,
    Mercury = 1732126099,
    MoltenAluminum = -1637472877,
    MoltenCarbon = 505665536,
    MoltenCopper = 2128494380,
    MoltenGlass = -1312713527,
    MoltenGold = -1083496621,
    MoltenIron = 502659099,
    MoltenCobalt = -333255194,
    MoltenLead = -1558864561,
    MoltenNiobium = 1499134368,
    MoltenSalt = -422045879,
    MoltenSteel = 1459013976,
    MoltenTungsten = -509585641,
    MoltenUranium = 1937473860,
    Naphtha = 1157157570,
    NuclearWaste = -232430636,
    Petroleum = -486269331,
    NaturalResin = 1244532348,
    Resin = -746800379,
    SaltWater = 1911997537,
    SugarWater = 878488353,
    SuperCoolant = -123825053,
    ViscoGel = -1683093854,
    Water = 1836671383,
    Ethanol = -87974045,
    MoltenSyngas = 660593444,
    PhytoOil = -20315850,
    RefinedLipid = -1121662089,
    MoltenSucrose = 1318135165,
    MoltenNickel = 2079148957,
    MoltenIridium = -1214831670,
    Aerogel = -2070223827,
    Algae = -1870043872,
    Aluminum = 2108244480,
    AluminumOre = 167973730,
    Bitumen = 1433229102,
    BleachStone = -839728230,
    Brick = -325269471,
    BrineIce = -1561279013,
    MilkIce = -1767622480,
    Carbon = 947100397,
    Peat = -1927771704,
    CarbonFibre = 118518245,
    Cement = 1627140480,
    CementMix = 1668719292,
    Ceramic = -1467370314,
    Clay = 867327137,
    Copper = -1725038055,
    Creature = 976099455,
    CrushedIce = -2123557039,
    CrushedRock = -1714565729,
    Cuprite = -1736594426,
    DepletedUranium = 1064294988,
    Diamond = -2079931820,
    Dirt = 1624244999,
    DirtyIce = 1664334585,
    Electrum = 28407099,
    EnrichedUranium = -348942381,
    Fertilizer = -1396791454,
    FoolsGold = 2059777261,
    Fossil = 1757792140,
    FrozenPhytoOil = -226111914,
    Fullerene = 245514112,
    Glass = 623986332,
    Gold = -279785280,
    GoldAmalgam = 361868060,
    Granite = -105943486,
    Ice = 873952427,
    IgneousRock = -355957251,
    Iron = 1306370440,
    IronOre = 1608833498,
    Cobalt = 108179667,
    Cobaltite = -1411918265,
    Isoresin = -2008682336,
    Katairite = 1071649902,
    Lead = -755153220,
    Lime = -721320011,
    MilkFat = -1792538178,
    MaficRock = 1282846257,
    Niobium = -1779895821,
    Corium = -220644613,
    Obsidian = -474151749,
    OxyRock = 1262005685,
    PhosphateNodules = -1901832310,
    Phosphorite = -877427037,
    Phosphorus = -220394187,
    HardPolypropylene = 1220285359,
    Polypropylene = -1142341158,
    Radium = -47820500,
    RefinedCarbon = -902240476,
    Regolith = 1362238252,
    Rust = -233232444,
    Salt = 381665462,
    Sand = 381796644,
    SandCement = -1038746460,
    SandStone = 493438017,
    Sandstone = 493438017,
    SedimentaryRock = 183408504,
    Shale = -1708952091,
    Slabs = 1412740729,
    SlimeMold = -1153056158,
    Snow = 489261827,
    StableSnow = 1542131326,
    SolidCarbonDioxide = 83003332,
    SolidChlorine = -690060127,
    SolidCrudeOil = -1224086026,
    SolidHydrogen = -858172533,
    SolidMercury = -537625624,
    SolidMethane = 1183979137,
    SolidNaphtha = -1112594153,
    SolidOxygen = 973502379,
    SolidPetroleum = -473261502,
    SolidPropane = 166493482,
    SolidResin = 1376267226,
    NaturalSolidResin = 1254083875,
    Amber = -1130501789,
    SolidSuperCoolant = -389019570,
    SolidViscoGel = -1495120499,
    Steel = -899253461,
    Sulfur = -729385479,
    SuperInsulator = -1713958528,
    TempConductorSolid = 1559722904,
    ToxicSand = 869554203,
    Tungsten = -1058835580,
    Unobtanium = 1838482828,
    UraniumOre = 134298891,
    Wolframite = -1208854194,
    Yellowcake = -1624413844,
    SolidEthanol = 1937241528,
    SolidSyngas = -690658692,
    ToxicMud = 900133477,
    Mud = 908179228,
    Sucrose = -1960895024,
    Graphite = 878995724,
    SolidNuclearWaste = -497625153,
    Cinnabar = 1875790680,
    WoodLog = 16214647,
    Tallow = -1624652107,
    Gunk = -230085045,
    NickelOre = 1387581016,
    Nickel = -1774383478,
    Iridium = -198894563,
    Vacuum = 758759285,
    Void = -1456075980,
    COMPOSITION = -1021084918
};

enum class TagCommand {
    Default, //
    AtTag,
    NotAtTag,
    DistanceFromTag
};

enum class Command {
    Clear,
    Replace,
    UnionWith,
    IntersectWith,
    ExceptWith,
    SymmetricExceptWith,
    All
};

enum class ListRule {
    GuaranteeOne,
    GuaranteeSome,
    GuaranteeSomeTryMore,
    GuaranteeAll,
    GuaranteeRange,
    TryOne,
    TrySome,
    Trysome = TrySome,
    TryRange,
    TryAll
};

enum class OrderRule {
    Prepend, //
    Append,
    Replace,
    Invalid
};

enum class ZoneType {
    FrozenWastes,
    CrystalCaverns,
    BoggyMarsh,
    Sandstone,
    ToxicJungle,
    MagmaCore,
    OilField,
    Space,
    Ocean,
    Rust,
    Forest,
    Radioactive,
    Swamp,
    Wasteland,
    RocketInterior,
    Metallic,
    Barren,
    Moo,
    IceCaves,
    CarrotQuarry,
    SugarWoods,
    PrehistoricGarden,
    PrehistoricRaptor,
    PrehistoricWetlands
};

enum class LocationType {
    Cluster, //
    StartWorld,
    InnerCluster
};

enum class WorldCategory {
    Asteroid, //
    Moon
};

enum class Skip {
    Never = 0,
    False = Never,
    Always = 99,
    True = Always,
    EditorOnly = 100
};

enum class LayoutMethod {
    Default = 0, //
    VoronoiTree = Default,
    PowerTree = 1
};

enum class SampleBehaviour {
    UniformSquare,
    UniformHex,
    UniformScaledHex,
    UniformSpiral,
    UniformCircle,
    PoissonDisk,
    StdRand
};

enum class PointSelectionMethod {
    RandomPoints, //
    Centroid
};

enum class Location {
    Floor,
    Ceiling,
    Air,
    BackWall,
    NearWater,
    NearLiquid,
    Solid,
    Water,
    ShallowLiquid,
    Surface,
    LiquidFloor,
    AnyFloor,
    LiquidCeiling,
    Liquid,
    EntombedFloorPeek
};

enum class Shape {
    Circle,
    Oval,
    Blob,
    Line,
    Square,
    TallThin,
    ShortWide,
    Template,
    PhysicalLayout,
    Splat
};

enum class Selection {
    None,
    OneOfEach,
    NOfEach,
    Weighted,
    WeightedBucket,
    WeightedResample,
    PickOneWeighted,
    HorizontalSlice
};

enum class Range {
    ExtremelyCold,
    VeryVeryCold,
    VeryCold,
    Cold,
    Chilly,
    Cool,
    Mild,
    Room,
    HumanWarm,
    HumanHot,
    Hot,
    VeryHot,
    ExtremelyHot
};

enum class Type {
    Building, //
    Ore,
    Pickupable,
    Other
};

enum class Orientation {
    Neutral, //
    R90,
    R180,
    R270,
    NumRotations,
    FlipH,
    FlipV
};

enum class ClusterCategory {
    Vanilla,
    SpacedOutVanillaStyle,
    SpacedOutStyle,
    Special
};
